home *** CD-ROM | disk | FTP | other *** search
- User Manual for
- YAM (Yet Another Modem)
- by Chuck Forsberg
-
- (Converted for MS-DOS and Lattice-C)
- by Olen Pederson
-
-
- 1. Highlights
-
- Conversational mode with optional capture to file and
- multiple page review of past output. File capture of long
- files works with any system which responds to XON-XOFF
- protocol.
-
- Flexible uploading of suitable files to many types of remote
- systems, even Bulletin Boards without normal uploading
- capability.
-
- Error checking file exchange with programs using Ward
- Christensen's protocol with optional Cyclic Redundancy
- Check. Enhanced error recovery and transfer abort logic.
-
- Batch transmission of files with compatible programs.
-
- High speed operation, 9600 baud file transfer and
- conversational terminal operation. Buffered printer
- operation at >>1200 baud. Full printer buffering allows use
- of slow printers, or printers with burst transfers (line
- printer, MX80, etc.). Function key escape sequences can be
- buffered, allowing proper operation when keyboard baudrate
- exceeds host baud rate.
-
- Disk utility functions including directory listing, change
- disk and/or directory, erase files, disk free space
- calculation, file transfer time calculation, CRCK file
- check, and local listing of files.
-
- Full support for pathnames, subdirectorys.
-
- Great flexibility in specifying filenames. New data may be
- appended to existing ASCII files. Optionally, YAM can
- maintain log of files sent and/or received with disk,
- filename, baud rate, and the name of the remote system.
-
- Written in C, a modern high level systems language for ease
- of portability and maintenance.
-
- 2. Definitions
-
- CAPTURE
- When in the T(term) function, ALL data coming from the remote
- is captured in a circular buffer.
-
- DUMPING
- When a receive file is open as a result of a "t filename"
- command, and the circular buffer is nearly full, that data
- is written out to the receive file if Dumping is on.
- Setting Squelch mode (see below) turns Dumping off until a
- ^R character is encountered.
-
- FUNCTION
- An operation supported by yam, such as DIR, TYPE, S, R, or
- T(term). A command may set or reset a MODE, or perform 0 or
- more FUNCTIONS.
-
- HOST
- The ``other machine'' with which YAM is communicating. This
- may be with either a direct RS-232 connection or through a
- pair of modems.
-
- MODE
- Many modes affect the way the term function handles data.
-
- OPTION
- Option(s) apply to the S and R commands only.
-
- PREFIX
- A letter that prefixes a command to modify its action.
-
- REPLOT
- Traditional term (from early days of Tek Graphics) referring
- to the rapid redisplay of previously calculated
- information. In the case of YAM, the data remaining in the
- capture buffer may be paged and/or searched with the replot
- function.
-
- {}
- Required argument.
-
- []
- Optional argument.
-
- pattern ...
- An empty pattern represents all files on the default disk in
- the current working directory. A disk identifier without
- filename represents all files on that disk in the current
- directory. Unambiguous and ambiguous filenames may be
- specified in any combination. A pattern may contain any
- combination of the above.
-
- 3. Prefixes and Commands
-
- 3.1 a:
- Change to a: disk (or b, etc.) some versions print the free
- disk space in kilobytes.
-
- 3.2 b m
- Set baudrate to m. Example: "b 9200"
-
- 3.3 br{eak}
- Sends a break.
-
- 3.4 bye
- Dump any connection in progress by dropping DTR (data
- terminal ready). A call or on command must be given to
- reassert DTR before making or answering another data call.
-
- 3.5 call name
- If the first character of name is a letter, yam searches the
- PHONES file for name. If the search is successful, enable
- Data Terminal Ready (DTR), and set baudrate to the value (if
- present) corresponding to name. If autodial is supported,
- dial the telephone number. The specifics of autodial
- operation may vary with the implementation. If autodial is
- notsupported, the telephone number is displayed. It is not
- necessary to type the entire name as it appears in the file,
- as YAM will find the first entry that is a prefix of name.
- If the first character of name is not a letter, yam assumes
- a telephone number has been entered directly.
-
- Example: "call tcbbs" or "call tc"
-
- 3.6 cd pattern ...
- change current directory to pathname. Function the same as
- the dos or Unix cd command.
-
- 3.7 ch
- change port configuration. System will prompt for data bits,
- parity and stop bits.
-
- 3.8 chat
- Chat keyboard to keyboard. Characters typed by either
- keyboard are echoed to both ends, and RETURNS echo as
- RETURN/LINEFEED. Chat will become hostile if the other end
- also echoes characters.
-
- 3.9 close
- Dump capture buffer if a receive file is open, close files.
-
- 3.10 crc [pattern ...]
- Print the "crc" checksum and character count for the
- specified files. The checksum is calculated with the same
- alogrithim as the CP/M CHEK.COM program. This command is
- slower but possibly more accurate than the crck command.
-
- 3.11 crck [pattern ...]
- Print the "crck" checksum and sector count for the specified
- files. The "crck" algorithm is stolen from version 4.3
- CRCK.ASM.
-
- 3.12 e{mode[s]}
- Enable mode(s) affecting file transmission/reception with the
- term function. (The "s" and "r" commands always send data
- transparently.)
-
-
- 3.13 d{mode[s]}
- Disable mode(s) affecting file transmission/reception with
- the term function.
-
- 3.14 debug
- Cause an interrupt to the operating system for use with
- debuggers. The MS-DOS version does an INT 3. NOTE: the
- debugger must have previously set up the vector location for
- this command to function properly.
-
- 3.15 del pattern ...
- Delete the named files. For each matched pathname, the user
- is prompted for Y, N, or Q. Y erases the file, N skips to
- the next file, and Q or anything else aborts the command.
-
- 3.16 dir [pattern ...]
- Displays the directory with the number of bytes in each
- file. The number of files matched, number of blocks, number
- of kb allocated to those files, and estimated transmission
- time at the current baudrate for all files listed are
- displayed. Transmission time estimate is based on batch
- transmission and the formula:
- blocks per minute =
- (Baudrate*60)/(10 bits each char * 136 chars)
- Time does not include error correction. The usual ambiguous
- filenames are allowed. Example: "dir" "dir *.c" "dir yam*.c"
- "dir *.c *.h"
-
- 3.17 dump [pattern ...]
- Dump the named files in side by side hex/ascii format. Zero
- length files will not be displayed.
-
- 3.18 f[mode[s]] name
- Send file 'name' in the term function. The optional mode
- enables one or modes. If squelch is enabled, preface with
- ^R and append with ^T.
-
- 3.19 help
- Displays a command summary. This command closes any open
- send file.
-
- 3.20 init{ialize}
- Initializes yam to all its default values. Does not reset
- the modem or file system(see "reset").
-
- 3.21 kill
- Kill all data in the capture buffer. Restores the pointers
- to their initial positions.
-
- 3.22 mn
- Change data port to (decimal) n. Example: "m1" The domain of
- correct port numbers and consequences arising from incorrect
- port numbers vary with the implementation.
-
-
- 3.23 o{ff}
- Disable the modem by turning off DTR.
-
- 3.24 pxm
- Set Parameter x to value m.
-
- 3.25 pwd
- Print pathname to the current working directory.
-
- 3.26 qu
- quit to DOS without dropping DTR to modem. This allows exit
- to the operating system, and subsequent re-entry without
- causing the modem to disconnect.
-
- 3.27 reset [size]
- Dump the capture buffer; if a file is open, close all files,
- and reset modem. The optional argument size becomes the
- size of the circular capture buffer, useful for debugging.
-
- 3.38 replot [m]
- Redisplay the last m lines and/or escape sequences received
- from the host. If m is 0 or absent, redisplay starting with
- the earliest data. A screenful is displayed at a time. The
- commands accepted in replot mode are listed below.
-
- 3.39 rewind
- Rewind the buffer pointers for the display, printer, and file
- dump from the term function. The effect of this command is
- the same as if the data had been sent another time.
-
- 3.40 r[options] [file ...]
- Receive with options 1 or more files using the Ward
- Christensen protocol. If no filename is given, batch mode
- is assumed. (Note: batch mode is not compatible with
- MODEM7). If more than one filename is given, a single file
- transfer will be made for each. If the RESTRICTED option is
- defined, a file received in error will be unlinked (erased).
-
- 3.41 s
- Displays status information about YAM configuration.
-
- 3.42 sum pattern ...
- Sums the named source files with an algorithm compatible with
- sum(1) on Version 7 Unix (sum -r on System III). Carriage
- returns, and all characters starting with CPMEOF are
- excluded from the calculation. This processing allows
- comparison of source files stored on different systems but
- not ``binary'' files.
-
- 3.43 s[options] pattern ...
- If batch mode is specified with the b option, 0 or more files
- are
- sent according to the ambiguous pathname(s). If batch mode is not
- specified, the named unambiguous file(s) are sent each in single
- file mode.
-
- 3.44 tab n
- Set tab expansion to n. If n=0, or not present, the tabs are
- reset to the default as found in the configuration file.
-
- 3.45 type pattern [...]
- Type the file(s) specified by one or more possibly ambiguous
- pattern(s). This command closes any open send file. Yam
- compiled with USQ defined will automatically detect squeezed
- files and print them in ASCII. Type stops/resumes printing with
- ^S. Keyboarding ^C cancels, and ^X skips to the next file.
-
- 3.46 t[c][mode] [file]
- The term function with optional capture to file. 0 or more modes
- may be enabled. The c (close) mode causes data in the capture
- buffer to be written to file and closed immediately. View mode
- causes the term function to display control characters by
- prefixing ^ to the corresponding letter. Characters with the 8th
- bit set will be prefixed by a ~. If the free buffer space
- becomes low, yam attempts an xoff-dump-xon sequence. A receive
- file previously opened by 't file' will not be closed by a
- 't'command.
-
- Keyboarded characters are treated in either of two ways depending
- on the value of Exitchar (see parameters, below). If Exitchar is
- non zero, term will return when a character matching Exitchar is
- keyboarded, and all others are passed without any special
- action. Otherwise, the following subcommands are available:
-
- 3.46.1 ^b
- Break. Sends a break signal to the remote. The break key on your
- terminal will probably generate a ^@ (NULL) character. After the
- break is sent, any remaining keyboard input (usually garbage from
- a break character) is discarded.
-
- 3.46.2 ^E
- Exits from the term function back to main command level. Rapidly
- typing ^E^E will instead cause one ^E to be transmitted.
-
- 3.46.4 ^Q
- If a send file is open and its transmission has been stopped by a
- XOFF, transmission is resumed. Otherwise no special treatment.
-
- 3.47.4 ^S
- If a send file is open and it is being transmitted, transmission
- is stopped. Otherwise no special treatment.
-
- 3.46.6 ^R
- Replots up to 24 lines starting with either the first character
- received after the last character keyboarded, or as much as in
- the buffer if less than 24 lines have been received. This allows
- the output from the last command to be conveniently reviewed.
- Replot then awaits next replot command (see below). ^R^R typed
- quickly sends one ^R instead.
-
-
- The following received characters are recognized in the term
- function, when they are fetched from the circular buffer for the
- display.
-
- 3.46.8 SO
- If Cis02 mode is in effect, turns on the Compuserve A protocol.
- This protocol is used with the XFTRAN program and the DOW command
- of SIG/ACCESS. See yam4.c and Compuserve's CP-MIG user group for
- more information.
-
- 3.46.9 XOFF
- Stops file transmission from yam.
-
- 3.46.10 XON
- Resumes file transmission.
-
- 3.46.11 TAB
- Some versions of YAM expand tab characters to spaces on the
- display. BUG: Since YAM does not decode cursor addressing
- commands, these commands should not be intermixed with tabs on
- the same line.
-
- 3.47 w
- Write dumps the circular buffer to the receive file, if open.
-
- 3.48 wc pattern ...
- Takes a count of lines, words, characters excluding returns, and
- all text characters for the given files. Characters beginning
- with CPMEOF are excluded. On 8 many versions, counts are modulo
- 64k.
-
- 3.49 x
- same as bye.
-
- 3.50 ! command
- Create a shell to execute a DOS command. For this function to work,
- the dos PATH must be set so the file command.com can be found. For
- Lattice-C versions, SWITCHAR must be not be reset from the default "\".
-
- 3.51 ;
- Semicolon is an optional command delimiter which may be used in
- place of RETURN in order to place multiple commands on a line.
-
- 4. MODES used with D, E, F, T or U commands
-
- !
- Negates the sense of the following mode. For example, t!l will
- turn off the line printer.
-
- 2
- Enables Compuserve A protocol if this feature is included. N.B.
- Non-ASCII files or files without CR's must be uploaded in
- Cpmpuserve's binary mode.
-
- a
- A return from the keyboard is sent as return, linefeed. If half
- duplex, both are sent to the console.
-
- b
- Binary mode of TRANSMISSION with T function. All 8 bits are
- sent. Handy for downloading binary files to adjacent machines
- without any modem program. Don't confuse this with the S
- function which uses the Christensen protocol. Also don't confuse
- with i mode which affects files received with the T function.
-
- d
- Directly enables/disables dumping of captured text is squelch mode
- is in effect. If squelch mode is not in effect, always enables
- dumping.
-
- e
- with term command, echo characters received from the host to the
- host. Use this only for keyboard to keyboard communication, and
- then only at one end. Reset after each command. Does not imply
- "Half Duplex".
-
- With the f command, selects an alternate file transmission
- function sendecho() which waits for an echo to each character
- transmitted (for Throttle/10 seconds). The echoed character is
- output to console. See "propagating yam" below. Often it is
- fairly easy to write a simple receive routine which synchronizes
- with the sender by the simple expedient of echoing the characters
- received. On Heath/Zenith CP/M system, the pip device "TTY:"
- does just that.
-
- f
- Full duplex.
-
- g
- Resumes (GO) sending file once in the term function, equivalent to
- XON. Disabling GO causes a file queued for transmission to wait
- for an XON character.
-
- h
- Half Duplex. Displays keyboarded characters as they are sent to
- the host.
-
- i
- Ignrx flag. When set this will cause characters defined by the
- RXNONO string to be ignored in the term() mode. If reset, all
- characterts are passed thru. This flag may be set or reset by
- the call command based on information in YAMPHONE.T.
-
- k
- Set the buffer size used in the s or r commmands. Non-compatible
- with MODEM7.
-
- l
- List unit (Printer) on. Since the printer is separately buffered,
- it needn't be as fast as the incoming data as long as the
- difference doesn't exceed the buffer size. The rewind command
- may be used to get extra copies of the received data.
-
- n
- Called nlmode, after the corresponding tty mode in Unix systems.
- Send NEWLINE (lf) only when transmitting file (no CR). Send
- keyboarded CR as NEWLINE. When receiving a file to disk with the
- term function, NEWLINE is stored on disk as \\r \\n.
-
- p
- When sending files with the term command, wait to receive GOchar
- after sending a CR at the end of a line. The default for GOchar
- is linefeed (see parameter g below). If GOchar is not received,
- the wait times out and transmission proceeds in the same manner
- as with w mode. The duration of this timeout is controlled by
- the p parameter.
-
- r
- Called crmode. Sends CR only at the end of each transmitted line.
-
- s
- Squelch the dumping of captured data with ^T and unsquelch with
- ^R. These characters are not copied to the file. When a receive
- file is opened with Squelch mode is selected, writing to the file
- is turned off. Selecting squelch mode automatically turns writing
- off; disabling squelch automatically turns it on. (See "d" above).
-
- t
- If Waitnum is more than 1, wait for echoes to stop after sending
- each Waitnum characters for period Pause. If Waitnum==1, send at
- 1/Throttle, measured in loops of the term() function. The
- default values of Waitnum and Throttle provide transmission at
- about 50 words per minute regardless of baud rate. This is handy
- because many remote systems cannot accept input at full speed.
-
- v
- View control characters as ^C. Useful in shutting up the bloody
- bell. In addition to the above, v distinguishes characters with
- the parity bit set by prepending a tilde (~). Note: View mode is
- distinct from view option. This mode is reset after each command.
-
- w
- When sending files with the term command, send CR only at end of
- line, and then pause until echoes from remote have stopped.
- Useful for sending files to bulletin boards where the remote
- needs time to prepare for the next text line. The length of this
- pause is controlled by the p parameter.
-
- x
- exit from the term function when EOF is encountered on transmitted
- file.
-
- z
- Close file when ^Z is encountered while dumping the capture
- buffer. Otherwise ^Z is ignored. It should be noted that ``The
- Source'' coughs up an occasional ^Z just as the "UPI"
- program is about to output something interesting.
-
- 5. Options used with S and R commands
-
- All options are reset after each command.
-
- b
- Batch option. In receive, filenames are provided by the sender.
- Pathname(s) may be specified as a batch option for file
- reception(i.e rb /usr/cat/). Filenames provided by the sender
- will be appended to the specified path name. Disk and
- subdirectory names are excluded from the transmitted pathname(s).
-
- c
- Request Cyclic Redundancy Check instead of simple checksum. This
- option must be specified with the R function. The receiving
- program automatically signals the sending program if CRC is to be
- used. The probability of an undetected transmission error is
- much less if CRC is used in place of arithmetic checksum.
-
- k
- Use 1 K byte blocks with the S and R functions. Default block
- length is 128. Increases throughput when the baudrate is high,
- relative to the response times of the channel and computers. The
- k option may not work properly on all systems, especially at high
- baud rates.
-
- q
- Quiet option inhibits some of the status information. Unlike some
- other programs, quiet option is not necessary for proper file
- file transfer at higher baudrates.
-
- t
- Execute the term function after file transfer(s) complete.
-
- v
- View the data being transmitted. Correct data is displayed once.
- Viewing ascii files does not interfere with correct transmission
- at extreme baud rates, although throughput will be affected. For
- each sector, data is viewed once before sending/after receiving.
-
- y
- Yes it is OK to clobber a file already on disk. If absent, the
- operator is given a choice of appending to the current file (a),
- erasing it (y) or aborting (n).
-
- 6. Parameters used with P command
-
- gm
- Set GOchar to m (decimal). Default is linefeed. (See p mode.)
- Some remote systems accept uploads with a ? for each line.
- Optimum operation with such a system might call for pg63 pp10000
- pt90 ftw filename. The first sets the go ahead character to
- question mark, the second sets the timeout to a long delay,
- the third sets throttle to a speed which allows the remote
- to echo at 300 baud (assuming no tabs), and finally the
- command to send the file with throttle and wait at end of
- line (also eliminating the lf). If this sounds too
- complex you can always go back to longhand.
-
- em
- Set Exitchar to m (decimal). Same format as GOchar discussed
- above. If defined (non-zero), term function will return when m
- is keyboarded, and ALL other keyboarded characters are passed to
- the remote. If special function keys have been defined for
- replot and exit they will still be recognized. Otherwise, be
- sure not to set Exitchar to something you can't keyboard!
-
- wn
- Set Waitnum to n. See "w" mode for details. Default is 1.
-
- tm
- Set Throttle to m. The default value corresponds to about 80
- words per minute sending speed.
-
- pm
- Set Pause to m. When the free characters in the circular buffer
- reach LOWATER, an XOFF is sent. Pause controls the time which
- must then pass without characters received before believing that
- the other end really has obeyed the XOFF character, as opposed to
- the sometimes lengthy Compuserve hitches in the getalong. If
- Pause is too short, it is possible that a lurch in output will be
- interpreted as acknowledgement of the XOFF, only to have more
- characters arrive whilst yam is occupied dumping the buffer to
- disk. When this happens, unfortunate characters are routed to
- the proverbial bit bucket, and you can retry the download as the
- timesharing service increments the connect charge. The default
- value seems suitable for Source over Tymnet and BBS systems.
- Pause is also the echo wait period used with the w mode, as well
- as the timeout for p mode. Some bulletin board programs require a
- very long pause when accepting files with the p or w mode.
-
- 7. Replot Commands
-
- Commands within replot consist of a single character. Replot maps
- uppercase, lowercase, and control characters together in decoding
- commands.
-
- b
- Display beginning of buffer.
-
- k
- Kill entire buffer contents and return.
-
- r,BS
- Display previous page (some overlap is provided).
-
-
- SP
- Display the next page.
-
- /
- Accept a search string, terminated by return. Search through the
- buffer starting at the current location for the first (next)
- instance of that string (matches either case). Display page
- starts with that line. If the search is unsuccessful, ring bell
- and jump to the beginning of the buffer.
-
- n
- Search for next occurrence of the previously entered search string.
-
- p
- Backup one line and redisplay.
-
- LF
- Advance one line.
-
- x
- Exit after displaying the last page of buffer contents. This
- restores the screen and keyboard to the same state they were in
- before replot was entered. X allows you to see where you were if
- you were in the midst of keyboarding a command to the remote.
- For example, suppose you are typing in a line of commands and you
- need to "thumb back" through the remote's output for some vital
- nugget of information. (After you enter a 20 line email message,
- NOW Compuserve asks you for the 8 digit account number to mail it
- to!) So you hit some Control V's until you see it on the screen.
- Now you can't remember whether you typed a space after the last
- part of you command to the remote. No sweat, just exit replot
- with x and you'll see just where you were (But don't forget that
- number!) X may not redisplay the entire page contents if the host
- has been sending escape sequences in the last page.
-
- 8. Special files
-
- There are 3 special files used with YAM. Actual file names are
- defined in YAMSYS.H with the defaults being "YAMCFG.T",
- "YAMHELP.T" and "YAMPHONE.T". YAM will search all directorys in
- the default search path to find these files. The data from the
- first sucessful pathname search is used.
-
- YAMCFG.T
- This file is the startup configuration file. It contains the
- signon prompt, initial serial port definition, definition of the
- RXNONO string, xon-xoff parameters, and others depending on the
- implementation.
-
- YAMHELP.T
- This file contains a summary of commands and is displayed by the
- "h[elp]" command.
-
- YAMPHONE.T
- This is the phone list file used by the CALL command. Call
- searches each line of this file until it finds a match. It then
- configures the modem port as defined by the parameters following
- the phone number. The phone number must be delimted by a <TAB>
- character. Modem baud rate is defined by a lower case 'b'
- followed by a number. Several letters following the baud rate
- define the number of stop bits(S1, S2), parity none, even or
- odd(PN,PE,PO), and the number of data bits(D7,D8). The flags
- field define optional flags which may be turned on. At the time
- of this writing only the Igrnx flag is defined. This will set or
- reset the i flag as defined in the "ei" command.
-
-
- 9. Sample YAM Session
-
- A sample session on MS-DOS might be:
-
- C>YAM invoke yam
- b 9200;b: Set 9.6 kb, Change to b disk
- dir yam*.* List files and calculate xmsn time
- sb yam*.* Send them to a system supporting the
- YAM batch mode
- call hydepark Call the number found in phonelist
- user data Enter a message, etc.
- ^E exit from term mode
-
- ftp letter Open 'letter' and send to bbs, using prompt
- and throttle modes to slow transmission so
- the remote system won't drop characters. YAM
- remains in T(erm) after the file is sent.
- xmodem s foo.bqr Command host to download a file
-
- ^E
- rt secret.tqp Download the file using MODEM7 protocol, then
- back to term function
-
- dir command to list directory on remote system
- ^R pause ^R Flip back two pages to first part of directory
- listed previously
- CR Back to term function
- user data More keyboarding with remote, logoff
- ^E exit (if CDO defined, term will exit by itself)
- bye Drop DTR so modem won't answer calls, Return
- to DOS
-
- 10. Notes
-
- When operating with a timesharing system and/or through network or
- satellite links, considerable delays in transmission and responce
- to blocks may severely reduce throughput of an FTP (file transfer
- protocol). The k option causes the s command to use 1024 byte
- blocks, rather than the standard 128. At high baud rates, this
- reduces the protocol related overhead up to 87 per cent,
- depending on file length, by reducing the number of blocks which
- must be sent and acknowledged by a factor of 8. 1024 byte
- blocks are selected by the sender. An STX at the
- beginning of each block (otherwise SOH for 128 bytes)
- indicates this block is 1k long. Pathnames are always
- sent with 128 byte blocks. Buffering problems on some
- timesharing systems may mitigate against use of 1k blocks
- at high baudrates. Files transmitted from Unix to CP/M
- will be padded with ^Z characters as necessary to reach a
- length divisable by 128.
-
- CP/M files sent with 1k blocks may not compare identically with
- their originals due to the addition of up to seven extra 128 byte
- sectors (padded with CPMEOF).
-
- Readiness to receive sectors with Cyclic Redundancy Check (2
- bytes) instead of the usual additive checksum is indicated by a
- 0103 (ASCII "C") for initial "naks" instead of 025. CRC option is
- highly recommended. It is the default when using batch mode
- and/or 1k blocks.
-
- File transmission is compatible with MODEM7 in single file,
- standard block length mode. File transmission may be aborted by
- sending a SEQUENCE of CAN (^X) characters. Each character
- keyboarded will cause readline() to return a TIMEOUT error, thus
- regaining keyboard control relatively easily.
-
- Maximum baudrate possible without errors using the t(erm)
- function depends on the computer and particular yam
- implementation, but usually is 9600 baud.
-
- Use these numbers for comparison. Your mileage and range may
- differ depending on clock speed, circuit distance and RFI/EMI.
- California estimate lower.
-
- Quiet mode is not necessary for proper operation at 19kb,
- although it does increase throughput slightly. View option (S
- and R commands) does not decrease maximum baud rate, although
- throughput is obviously affected according to the ratio of
- terminal speed to communications rate.
-
- Printer operation with bios calls or view mode substantially
- reduces the highest baudrate possible with the term function
- without losing characters (independent of actual printer speed).
- The term function will send XOFF to prevent buffer overflow if
- the printer is on, or if a receive file is in use.
-
- In the term function, use of the circular buffer provides some
- advantages.
-
- Incoming data may come in at a rate higher than the display and/or
- printer. Tab expansion for the display does not compromise this
- ability.
-
- The user may decide to save a timesharing session on the disk
- AFTER it has started (or possibly even finished) as long as
- the buffer pointers have not wrapped around.
-
- The same ability also applies to the printer. The printer need
- not be as fast as the host as long as the Tortoise is allowed to
- catch up.
-
- Received data may be redisplayed (replot command).
-
- At high speeds, the display will fall behind the incoming data, as
- storing of raw host data into the buffer takes precedence over
- all else. As a result, a defective or incorrectly programmed
- port which sources data at high speed can lockout the keyboard.
- If yam "goes away" when entering the term function, this may be
- the cause.
-
- The t and z modes affecting dumping of captured data take effect
- when the circular buffer is written to the receive file, not as
- the characters are first received from the data port.
-
- The append option (available if receiving filename where filename
- exists) operates by by utilizing the append option of the C open
- command.
-
- 11. Downloading Files from Unix(TM) Systems
-
- To download files from Unix systems with sb, invoke sb(1) to send
- the desired files and then use the yam ``r[yt]'' command. On
- Unix type:
-
- sb file ...
-
- Then exit term with ^E and give
-
- ry
-
- and file transfers will commence.
-
- If the files are long, and/or if the baudrate is limited, you can
- save time by squeezing them first with sq(1).
-
- Versions of the BDS C programs SQ, TYPE, and USQ are available for
- Unix systems. The CP/M version of USQ supports a -n option which
- will expand Unix NL's to CR/LF. The Unix version -n flag
- suppresses carriage returns.
-
- If a file or set of files are to be transported between Unix
- systems with yam, it is helpful to place them in a tar(1) archive
- (and possibly squeeze the archive) before transmission. This
- procedure will preserve the modification times and avoid adding
- ^Z characters to the ends of files. The -k option of sb will
- select 1 kb block length rather than the standard 128 bytes for
- improved throughput at high baudrates. Currently this does not
- work at 9600 baud with the Z100 under MSB.
-
- Consult the sb.1 manual entry for more information.
-
- 12. Uploading Files to Unix(TM) Systems
-
- On Unix systems, files may be uploaded with rb(1). See the rb.1
- manual entry for more information.
-
- 13. Error Correcting File Transfer with Other(UGH) Remote Systems
-
- If the host system has YAM, XYAM, MODEM, XMODEM, tmodem, umodem,
- or something compatible, you can upload files with the s command
- on your computer and the corresponding r command on the remote.
- Newer versions of some of these programs support Cyclic
- Redundancy Check as an alternative to the simple checksum used by
- the original Ward Christensen protocol. CRC is much better at
- detecting errors and I recommend its use where available.
-
- Unfortunately, this protocol is not implemented on the popular
- timesharing services The Source and Compuserve. It is often
- possible to upload files using the F command, perhaps with one or
- more modes. Your chances of success improve if you set "enab
- flow" when connecting to Telenet. If using Tymnet, type ^R^X just
- before the host computer name to enable flow control with XOFF
- and XON. It often helps to use "half duplex" when connecting to
- the computer.
-
- Yam4 implements the Compuserve `A' protocol which is usable only
- on Compuserve's own network.
-
- The determined hacker will divine alternative ways to transfer
- files by a close examination of the rest of this document.
-
- 14. BUGS
-
- Yam does not trap any escape sequences from the computer which can
- lock up the keyboard or display. If yam appears to be locked up,
- check the terminal by itself to see if perhaps it is wedged.
-
- Not all commands are implemented on all versions.
-
- When YAM is used with a terminal (or terminal emulation) which
- accepts commands to transmit information to the host (screen
- dump, cursor position, indent, etc.), the characters so generated
- may cause YAM to do strange things. The most common
- manifestation of this is in replot mode, where the automatically
- generated characters may cause YAM to exit replot.
-
- Yam gets its input in term() mode from low level bios functions.
- This was done for speed but has the side effect of disableing many
- keyboard re-definition utilities.
-
- readbaud() must return a valid #. Otherwise baudrate will be 0
- and routines which use it(especially dir) will fail with a divide
- by 0 error.
-
- sb *.* will report an error when it encounters a subdirectory. It
- recovers and the error message can be ignored.
-
- rb pathname may send a pathname NAK to the other system before it
- is ready, depending on the speed of the host. This is especially
- true when using a ram disk to receive files.
-
- break on control-c may not be recognized properly if DOS BREAK
- ON is set.